import {
  ITextConfigType,
  INumberConfigType,
  ISelectConfigType,
  TTextDefaultType,
  TNumberDefaultType,
  TSelectDefaultType,
} from '@/components/FormComponents/types';

export type TIconTypeSelectKeyType =
  | 'icon-tubiao'
  | 'icon-caidan'
  | 'icon-xingxing';
export type TResourceIconEditData = Array<
  | INumberConfigType
  | ITextConfigType
  | ISelectConfigType<TIconTypeSelectKeyType>
>;
export interface IResourceIconConfig {
  iconType: TSelectDefaultType<TIconTypeSelectKeyType>;
  tooltip: TTextDefaultType;
  name: TTextDefaultType;
  alias: TTextDefaultType;
  fontSize: TNumberDefaultType;
}

export interface IResourceIconSchema {
  editableData: TResourceIconEditData;
  config: IResourceIconConfig;
}

const ResourceIcon: IResourceIconSchema = {
  editableData: [
    {
      key: 'iconType',
      name: '图标样式',
      type: 'Select',
      range: [
        { key: 'icon-tubiao', text: '图标' },
        { key: 'icon-caidan', text: '菜单' },
        { key: 'icon-xingxing', text: '星星' },
      ],
    },
    {
      key: 'tooltip',
      name: '提示语',
      type: 'Text',
      extra: '鼠标停在控件上显示的提示，留空则没有提示',
    },
    {
      key: 'name',
      name: '标题显示名称',
      type: 'Text',
      extra: '显示在窗口的标题处，留空则使用图标样式名称',
    },
    {
      key: 'alias',
      name: '名称',
      type: 'Text',
      placeholder: '一般留空，某些版本电子书使用',
    },
    {
      key: 'fontSize',
      name: '大小',
      type: 'Number',
      range: [32, 100],
    },
  ],
  config: {
    iconType: 'icon-tubiao',
    tooltip: '',
    name: '',
    alias: '',
    fontSize: 32,
  },
};

export default ResourceIcon;
